/**
 *  
 *  爬虫主控制台
 *  
 */
$(function(){
	
	init();//初始化数据
	
	$(".back").click(function(){//返回
		wq.toPage("/");
	});
	
	//新增
	$("#addSpider").click(function(){
		openSpiderModal({
			title : '新增爬虫',
			isEdit : false
		});
	});
	
});

//初始化 爬虫列表
function init(){
	//查询数据
	$.ajax({
		url : '/spider/getAllSpiders',
		method : 'GET',
		dataType : 'json',
		success : function(data){
			console.log(data);
			if(data.status == 200){
				//生成模板
				wq.getHandlebars({
					sricptId : 'spiderListHandlebars',
					htmlId : 'listContext',
					data : data.object
				});
				
				//爬取按钮样式
				$(".spin").each(function(){
					if($(this).attr('value') == "1"){
						$(this).text('停止');
						$(this).attr('value' , "0");
					}else if($(this).attr('value') == "0"){
						$(this).text('抓取');
						$(this).attr('value' , "1");
					}
				});
				
				//删除爬虫
				$(".del").off().on("click" , function(){
					var id = $(this).parents('tr').find('.id').text();
					//打开询问
					wq.cf({selector : 'spiderDel',info : '是否删除spider'});
					
					var formdate =  new FormData(id.split(''));
					//确认删除事件
					$(".spiderDel").off().on("click" , function(){
						wq.closeCf('spiderDel');//关闭弹框
						//执行删除
						$.ajax({
							url : '/spider/removeSpider', 
							method : 'GET',
							data : {ids : id},
							dataType : 'json',
							success : function(data){
								wq.msg(data.msg);
								if(data.status == 200){
									$(".close").click(function(){
										wq.refreshPage();
									});
								}
							}
						});
					});
				});
				
				//编辑爬虫
				$(".edit").off().on("click" , function(){
					var id = $(this).parents('tr').find('.id').text();
					openSpiderModal({
						title : '编辑爬虫',
						isEdit : true,
						id : id
					});
				});
				
				//result 查看结果
				$(".result").off().on("click" , function(){
					var id = $(this).parents('tr').find('.id').text();
					if(id == '' || id == null){
						wq.msg("系统繁忙，请刷新后重试");
						return false;
					}
					wq.toPage("/result?id=" + id , false);
				});
				
				//进入直播间
				$(".view").off().on("click" , function(){
					var url = $(this).attr('id');
					wq.toPage(url ,true);
				});
				
				//爬虫控制器
				$(".spin").off().on("click" , function(){
					var id = $(this).parents('tr').find('.id').text();
					var spin = $(this).attr('value');
					//打开弹框
					wq.cf({selector : 'enter' , info : '确认开启或停止爬虫？'});
					$(".enter").off().on("click" , function(){
						wq.closeCf('enter');
						$.ajax({
							url : '/spider/toSpin',
							method : 'GET',
							data : {spin : spin , id : id},
							dataType : 'json',
							success : function(data){
								if(data.status == 200){
									wq.msg(data.msg , true);
								}else {
									wq.msg(data.msg);
								}
							}
						});
					});
				});
				
			}
		}
	});
	
}

//新增或 修改爬虫信息--打开弹框
function openSpiderModal(option){
	$("#spiderInfoModal .modal-title").text(option.title);//设置标题
	$("#spiderInfoModalBody .form-control").val('');//清空
	
	if(option.isEdit){//是不是编辑按钮控制
		//查询信息
		if(option.id != null){
			eidtSpider(option.id);
		}else{
			wq,msg('系统繁忙，请重试');
		}
	}else{
		$("#spiderInfoModalBody .id").val(null);
	}
	//打开弹框
	$("#spiderInfoModal").modal('show');
	
	//绑定 保存或修改事件
	$(".saveSpider").off().on('click' , function(){
		var url = $("#spiderInfoModalBody .url").val();//检查 url为不为空 ，和验证格式
		if(!checkURL(url)){
			wq.msg("请填写url和填写正确的网站格式: 如 : http://www.no888.cn/index");
			return false;
		}else if($(".spiderPlatform").val() == '' || $(".spiderPlatform").val() == null){
			wq.msg("请指定爬虫的平台性质");
			return false;
		}else{
			var actionUrl = '/spider/';
			if(option.isEdit){
				actionUrl += 'editSpider';
				actionSpider(actionUrl);
			}else{
				actionUrl += 'addSpider';
				$.ajax({//先去检查url的合理性
					url : '/spider/checkURL',
					method : 'GET',
					data : {addurl : url},
					dataType : 'json',
					success : function(data){
						if(data.status == 200 && data.object){
							actionSpider(actionUrl);
						}else if(data.status == 500 || data.status == 400){
							wq.msg(data.msg);
						}else{
							wq.msg("添加的url已经存在，请勿重复添加");
						}
					}
				});
			}
		}
	});
}

//查询并赋值
function eidtSpider(id){
	$.ajax({
		url : '/spider/getSpiderById',
		method : 'GET',
		data : {id : id},
		dataType : 'json',
		success : function(data){
			if(data.status == 200 && data.object != null){
				var spider = data.object;
				//赋值操作
				$("#spiderInfoModalBody .id").val(spider.id);
				$("#spiderInfoModalBody .name").val(spider.name);
				$("#spiderInfoModalBody .author").val(spider.author);
				$("#spiderInfoModalBody .url").val(spider.url);
				$("#spiderInfoModalBody .spiderPlatform").val(spider.spiderPlatform);
			}else{
				wq.msg(data.msg, true);
			}
		}
	});
}

//修改或新增的执行
function actionSpider(actionUrl){
	//执行动作
	$.ajax({
		url : actionUrl,
		method : 'POST',
		data : $("#spiderForm").serialize(),
		dataType : 'json',
		success : function(data){
			wq.msg(data.msg);
			if(data.status == 200){
				$(".close").click(function(){
					wq.refreshPage();
				});
			}else{
				return false;
			}
		}
	});
}

//检查网站格式
function checkURL(url){
	var match = /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/;
	return match.test(url);
}

